package com.swanclouds.api.chassis;

import com.swanclouds.common.RestService;
import com.swanclouds.model.chassis.Chassis;
import com.swanclouds.model.common.ActionResponse;
import com.swanclouds.redfish.common.redfish.IndicatorLED;

/**
 * Author: HuangFuYuHui
 * Title: ChassisService
 * Description: TODO
 * Date: 2022/7/18 15:33
 */
public interface ChassisService extends RestService {

    /**
     * 查询服务器系统内的机箱集合资源信息。
     * @return  com.swanclouds.model.chassis.Chassis
     **/
    Chassis get();

    /**
     * 修改机箱定位指示灯状态。
     * @param  indicatorLED 指示灯属性
     * @return  com.swanclouds.model.common.ActionResponse
     **/
    ActionResponse updateChassisIndicatorLEDStatue(IndicatorLED indicatorLED);

    /**
     * 查询指定服务器机箱的温度和风扇传感器信息服务。
     * @return com.swanclouds.api.chassis.ThermalService
     **/
    ThermalService Thermal();

    /**
     * 查询指定服务器机箱的电压、功率和电源信息服务。
     * @return com.swanclouds.api.chassis.PowerService
     **/
    PowerService Power();

    /**
     * 查询网络适配器集合资源信息服务
     * @return com.swanclouds.api.chassis.NetworkAdaptersService
     **/
    NetworkAdaptersService NetworkAdapters();

    /**
     * 查询服务器指定驱动器的信息服务。
     * @return com.swanclouds.api.chassis.DrivesService
     **/
    DrivesService Drives();

    /**
     * 查询服务器指定PCIe设备资源信息服务。
     * @return com.swanclouds.api.chassis.PCIeDeviceService
     **/
    PCIeDeviceService PCIeDevices();

    /**
     * 查询指定网口资源信息
     * @return  com.swanclouds.api.chassis.NetworkPortsService
     **/
    NetworkPortsService NetworkPorts();

}
